package com.pm.common.core.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.pm.common.core.domain.model.POJOEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 项目模板定义表
 * </p>
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class ProjectTempleteDefine extends POJOEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;



    /**
     * 模板版本号ID
     */
    private Long versionId;

    /**
     * 上级ID
     */
    private Long parentId;

    /**
     * 节点/任务名称
     */
    private String nodeName;

    /**
     * 是否必填
     */
    private Integer needFlag;

    /**
     * OA模版ID
     */
    private String oaTempleteId;

    /**
     * OA表单链接
     */
    private String oaUrl;



    /**
     * 负责人岗位ID
     */
    @TableField(exist = false)
    private String ownerPosition;


    /**
     * 负责人岗位ID
     */
    @TableField(exist = false)
    private List<String> postCodes;

    /**
     * 状态 0正常 1停用
     */
    private Integer status;

    /**
     * 子节点
     */
    @TableField(exist = false)
    List<ProjectTempleteDefine> children = new ArrayList<>();


    @TableField(exist = false)
    String  versionNo;

    @TableField(exist = false)
    private String ownerPositionName;


    /**
     * 开始时间
     */
    @TableField(exist = false)
    private String startTime;

    /**
     * 结束时间
     */
    @TableField(exist = false)
    private String endTime;

    /**
     * 责任人
     */
    @TableField(exist = false)
    private String ownerUserName;


    /**
     * OA编号
     */
    @TableField(exist = false)
    private String oaNo;

    /**
     * project_list_node表ID
     */
    @TableField(exist = false)
    private Long pnId;


    /**
     * 责任人 用户ID
     */
    @TableField(exist = false)
    private List<String> userIds;

    /**
     * 责任人 用户ID
     */
    @TableField(exist = false)
    private String userIdList;

    /**
     * 责任人明细
     */
    @TableField(exist = false)
    List<ProjectListNodeMember> projectListNodeMemberList;


    /**
     * 预算
     */
    private BigDecimal budget;


    /**
     * 完成率
     */
    @TableField(exist = false)
    private BigDecimal doneRate;

    /**
     *
      */
    @TableField(exist = false)
    private List<String> roundDate;




}
